import { isVnode, isSameVnode, emptyNodeAt } from './util.js';
import { createElm } from './createElm.js';
import { patchVnode } from './patchVnode.js';
export default function (oldVnode, newVnode) {
  /* 传入的第一个参数是DOM节点，此时要包装为虚拟节点 */
  // if (oldVnode.sel == undefined) {
  //   /* DOM 节点，此时要包装为虚拟节点 */
  //   oldVnode = vnode(oldVnode.tagName.toLowerCase(), {}, [], undefined, oldVnode);
  // }

  /* 判断oldVnode和newVnode是不是同一个节点 */
  // if(oldVnode.)
  if (!isVnode(oldVnode)) {
    oldVnode = emptyNodeAt(oldVnode);
  }
  // console.log(oldVnode);
  if (isSameVnode(oldVnode, newVnode)) {
    console.log('是同一个节点');
    patchVnode(oldVnode, newVnode);
  } else {
    // console.log('不是同一个节点');
    // console.log(oldVnode.elm);
    /* 创建新的节点 */
    let newVnodeElm = createElm(newVnode);
    console.log(newVnodeElm);

    if (oldVnode.elm && newVnodeElm) {
      oldVnode.elm.parentNode.insertBefore(newVnodeElm, oldVnode.elm);
    }
    /* 删除老节点 */
    oldVnode.elm.parentNode.removeChild(oldVnode.elm);

    console.log(oldVnode);
  }
}

